<?php
session_start ();
date_default_timezone_set ( 'Europe/Moscow' );
// Инициализируем профайлер - будем считать и процессорное время и потребление памяти

// запускаем телеметрию
$timeStart = microtime ( true );
$memoryStart = memory_get_usage ();

// устанавливаем режим показа ошибок
error_reporting ( - 1 ^ E_STRICT ); // выключаем стрикт


// устанавливаем путь к приложению и библиотеке
define ( 'PINENUT_LIBRARY', __DIR__ . '/../../../library' );
define ( 'PINENUT_APPLICATION', __DIR__ . '/../application' );
set_include_path ( PINENUT_LIBRARY . PATH_SEPARATOR . PINENUT_APPLICATION );

// автозагрузка
function __autoloader($class) {
	include_once (strtr ( $class, '_\\', DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR ) . '.php');
}
;
spl_autoload_extensions ( '.php' );
spl_autoload_register ( '__autoloader', true );

// устанавливаем окружение
// TODO: вынести в установки, настраиваемые на веб-сервере,
// чтобы отвязать базовый код от настроек окружения полностью
define ( 'PINENUT_DEBUG', true ); // включает режим отладки
//define ( 'PINENUT_ENV', 'dev/kosh' ); // подключает соответствующую конфигурацию
define ( 'PINENUT_LOG_FILE', __DIR__ . '/../log.txt' ); // файл для логирования

// настраиваем приложение
\Application::libraryPath (PINENUT_LIBRARY);
\Application::applicationPath (PINENUT_APPLICATION);
\Application::isDebug (PINENUT_DEBUG);
//\Application::environment (PINENUT_ENV);
\Application::logFile (PINENUT_LOG_FILE);

// выполняем запрос
\Application::run ();

// отображаем телеметрию
$memoryFinish = memory_get_usage ();
$memoryPeak = memory_get_peak_usage ();
$timeFinish = microtime ( true );
// echo sprintf("<pre>%0.2fKb/%0.2fKb, %1.2fms</pre>", 
// 	($memoryFinish-$memoryStart)/1024, 
// 	($memoryPeak-$memoryStart)/1024,
// 	($timeFinish - $timeStart)*1000);
